The cost of developing computer games is very high, and may involve costs relates to developing the plot, the logic and the graphics, programming, marketing and other related costs.
Therefore once a computer game is developed for one platform, such as a standalone play station, the owner may wish to make further uses of the game, for example deploy it on further platforms.
Significant parts of the computer code of a game, such as the logic of the game can be used as is, or may be ported to another platform manually or by using automatic porting tools. Other parts, such as graphic libraries may be ported by using compatible existing tools, and modules that communicate with such libraries may be ported or may initially be written to correspond to multiple such libraries.
However, some features of the original platform cannot exist on the new platform, such as usage of certain user controls. Further, some options may not be enabled or supported when the game is to be used on the new platform. Therefore, presenting instructions to a user to use non-existent controls, or attempt by the user to activate non-supported options presented to him may lead to frustration of the user, malfunction or crash of the game, or other undesirable situations.
It is thus required to identify graphic elements such as symbols, text or other graphic elements associated with such controls or options, and to take preventive actions such as hiding the graphic element, displaying another element on top of it, presenting a text stating that the options is unavailable, blocking an action, simulating a mouse click, or the like. However, identifying such graphic elements in an automatic manner within a frame is not always an easy task. The location, color, size, font or other characteristic of the element may vary between different circumstances or even continuously while the element is displayed. The surrounding of the element, which may be required to identify it may also change. Additionally, multiple instances of the same graphic element may be displayed in one frame. For example, the symbol “O” may be used for instructing a user to use a specific control, but the same symbol may be used as a regular “O” letter appearing in additional text blocks within the same frame, in which they should not be hidden and for which no action has to be taken.